<?php
class LaudotecnicosController extends AppController {

	var $name = 'Laudotecnicos';

	function gerarLaudo($id = null, $msg = null) {
		
		if ( !empty($this->data) ) {
			
			$this->data['Laudotecnico']['ordemservico_id'] = $this->data['Laudotecnico']['numero_os'];
			if ($this->Laudotecnico->save($this->data)) {
				
				$laudoTecnico = $this->Laudotecnico->id;
				foreach ( $this->data['Foto'] as $foto ) {
					$dados = $foto['nome'];
					$foto['laudotecnico_id'] = $laudoTecnico;
					$foto['tipo'] = $dados['type'];
					$foto['tamanho'] = $dados['size'];
					$hash = explode("/", $dados['tmp_name']);
					$foto['hash'] = $hash['2'];
					$this->Laudotecnico->Foto->create();
					$this->Laudotecnico->Foto->save($foto);
				}
				
				$msg = 'Laudo gerado com sucesso.';
				$this->redirect(array('action' => 'gerarLaudo', $laudoTecnico, $msg));
			} else
				$msg = 'O laudo técnico não pôde ser gerado.';
		}
		if ($id && empty($this->data)) {
			//$this->Laudotecnico->recursive = 2;
			$this->data = $this->Laudotecnico->read(null, $id);
			//$this->data['Laudotecnico']['numero_os'] = $this->data['Laudotecnico']['ordemservico_id'];
			//$pessoas = $this->Laudotecnico->Ordemservico->Pessoa->find('list', array('conditions' => array('Pessoa.id' => $this->data['Laudotecnico']['pessoa_id'])));
			//$produtos = $this->Laudotecnico->Ordemservico->Produto->find('list', array('conditions' => array('Produto.id' => $this->data['Ordemservico']['produto_id'])));
			//$this->data['Laudotecnico']['modelo'] = $this->data['Ordemservico']['Produto']['modelo'];
			//$this->data['Laudotecnico']['numeroserie'] = $this->data['Ordemservico']['Produto']['numeroserie'];
		}
		
		$this->set(compact('pessoas', 'produtos', 'id', 'msg'));
	}

	function delete($id = null, $msg = null) {
		if ($id) {
			if ( $this->Session->read('Auth.Usuario.perfilacesso') == 'Administrador' ) {
				if ($this->Laudotecnico->delete($id)) {
					$msg = 'Dados apagados com sucesso!';
					//$this->redirect(array('action'=>'gerarLaudo'));
				} else 
					$msg = 'O Laudo Técnico não foi excluído.';
			} else 
				$msg = 'Somente o Administrador pode excluir um Laudo Técnico.';
		}
		$this->redirect(array('action' => 'gerarLaudo', $id, $msg));
	}
	
	function carregarOs($osId){
		$this->layout = 'ajax';
		$id = $this->Laudotecnico->Ordemservico->field('id', array('Ordemservico.id' => $osId));
		if ( !empty($id) ) 
			$this->data = $this->Laudotecnico->Ordemservico->read(null, $id);
		else 
			$this->data = array();
			
		echo json_encode($this->data);
		$this->render(false);
	}
	
	function consultarLaudo($msg = null) {
		
		if ( !empty($this->data) ) {
			
			$laudo_id = null; 
			if ( !empty($this->data['Laudotecnico']['numero_laudo']) )
				$laudo_id = $this->Laudotecnico->field('id', array('Laudotecnico.id' => $this->data['Laudotecnico']['numero_laudo'])); 
			
			if ( $laudo_id != '' ) {
				$this->Laudotecnico->recursive = 2;
				$laudo = $this->Laudotecnico->read(null, $laudo_id);
				$laudo['Laudotecnico']['func'] = $this->Session->read('nome');
				$this->set('laudo', $laudo);
				//echo '<pre>'; print_r($laudo); echo '</pre>';
				$this->layout = 'pdf';
				$this->render('laudoPdf');
			} else 
				$msg = 'Laudo técnico não cadastrado.';
			
		}
		$this->set(compact('msg'));
	}
	
	function laudoPdf(){
		$this->layout = 'pdf';
		//$this->render('relatorioServicosPdf');
	}
}
?>